namespace ColladaDotNet
{
	/// <remarks/>
    
	[System.SerializableAttribute()]
    
    
	[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://www.collada.org/2005/11/COLLADASchema")]
	[System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.collada.org/2005/11/COLLADASchema", IsNullable=false)]
	public partial class node {
        
		private asset assetField;
        
		private ColladaXmlNode[] itemsField;
        
		private ItemsChoiceType7[] itemsElementNameField;
        
		private InstanceWithExtra[] instance_cameraField;
        
		private instance_controller[] instance_controllerField;
        
		private instance_geometry[] instance_geometryField;
        
		private InstanceWithExtra[] instance_lightField;
        
		private InstanceWithExtra[] instance_nodeField;
        
		private node[] node1Field;
        
		private extra[] extraField;
        
		private string idField;
        
		private string nameField;
        
		private string sidField;
        
		private NodeType typeField;
        
		private string[] layerField;
        
		public node() {
			this.typeField = NodeType.NODE;
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("asset")]
		public asset asset {
			get {
				return this.assetField;
			}
			set {
				this.assetField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("lookat", typeof(lookat))]
		[System.Xml.Serialization.XmlElementAttribute("matrix", typeof(matrix))]
		[System.Xml.Serialization.XmlElementAttribute("rotate", typeof(rotate))]
		[System.Xml.Serialization.XmlElementAttribute("scale", typeof(TargetableFloat3))]
		[System.Xml.Serialization.XmlElementAttribute("skew", typeof(skew))]
		[System.Xml.Serialization.XmlElementAttribute("translate", typeof(TargetableFloat3))]
		[System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")]
		public ColladaXmlNode[] Items {
			get {
				return this.itemsField;
			}
			set {
				this.itemsField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("ItemsElementName")]
		[System.Xml.Serialization.XmlIgnoreAttribute()]
		public ItemsChoiceType7[] ItemsElementName {
			get {
				return this.itemsElementNameField;
			}
			set {
				this.itemsElementNameField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("instance_camera")]
		public InstanceWithExtra[] instance_camera {
			get {
				return this.instance_cameraField;
			}
			set {
				this.instance_cameraField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("instance_controller")]
		public instance_controller[] instance_controller {
			get {
				return this.instance_controllerField;
			}
			set {
				this.instance_controllerField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("instance_geometry")]
		public instance_geometry[] instance_geometry {
			get {
				return this.instance_geometryField;
			}
			set {
				this.instance_geometryField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("instance_light")]
		public InstanceWithExtra[] instance_light {
			get {
				return this.instance_lightField;
			}
			set {
				this.instance_lightField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("instance_node")]
		public InstanceWithExtra[] instance_node {
			get {
				return this.instance_nodeField;
			}
			set {
				this.instance_nodeField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("node")]
		public node[] node1 {
			get {
				return this.node1Field;
			}
			set {
				this.node1Field = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("extra")]
		public extra[] extra {
			get {
				return this.extraField;
			}
			set {
				this.extraField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")]
		public string id {
			get {
				return this.idField;
			}
			set {
				this.idField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")]
		public string name {
			get {
				return this.nameField;
			}
			set {
				this.nameField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="NCName")]
		public string sid {
			get {
				return this.sidField;
			}
			set {
				this.sidField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute()]
		[System.ComponentModel.DefaultValueAttribute(NodeType.NODE)]
		public NodeType type {
			get {
				return this.typeField;
			}
			set {
				this.typeField = value;
			}
		}
        
		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute(DataType="Name")]
		public string[] layer {
			get {
				return this.layerField;
			}
			set {
				this.layerField = value;
			}
		}
	}
}